home *** CD-ROM | disk | FTP | other *** search
- package Local.External.CMG
- {
- public class MD5
- {
-
- public static var hexcase:uint = 0;
-
- public static const HEX_FORMAT_LOWERCASE:uint = 0;
-
- public static const HEX_FORMAT_UPPERCASE:uint = 1;
-
- public static const BASE64_PAD_CHARACTER_DEFAULT_COMPLIANCE:String = "";
-
- public static var b64pad:String = "";
-
- public static const BASE64_PAD_CHARACTER_RFC_COMPLIANCE:String = "=";
-
-
- public function MD5()
- {
- super();
- }
-
- public static function md5_gg(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
- {
- §§push(§§findproperty(md5_cmn));
- §§push(param2 & param4);
- if(true)
- {
- §§push(§§pop() | param3 & ~param4);
- }
- return §§pop().md5_cmn(§§pop(),param1,param2,param5,param6,param7);
- }
-
- public static function md5_cmn(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number) : Number
- {
- return safe_add(bit_rol(safe_add(safe_add(param2,param1),safe_add(param4,param6)),param5),param3);
- }
-
- public static function binl_md5(param1:Array, param2:Number) : Array
- {
- var _loc3_:Number = NaN;
- var _loc4_:Number = NaN;
- var _loc5_:Number = NaN;
- var _loc6_:Number = NaN;
- var _loc7_:Number = NaN;
- var _loc8_:Number = NaN;
- var _loc9_:Number = NaN;
- var _loc10_:Number = NaN;
- var _loc11_:Number = NaN;
- param1[param2 >> 5] |= 128 << param2 % 32;
- param1[(param2 + 64 >>> 9 << 4) + 14] = param2;
- _loc3_ = 1732584193;
- _loc4_ = -271733879;
- _loc5_ = -1732584194;
- _loc6_ = 271733878;
- _loc7_ = 0;
- loop0:
- while(true)
- {
- §§push(_loc7_);
- while(true)
- {
- if(§§pop() >= param1.length)
- {
- §§push(_loc3_);
- break;
- }
- §§push(_loc3_);
- if(false)
- {
- break;
- }
- §§push(§§pop());
- if(true)
- {
- continue loop0;
- }
- }
- return null;
- }
- }
-
- public static function str2rstr_utf16le(param1:String) : String
- {
- var _loc2_:String = null;
- var _loc3_:Number = NaN;
- _loc2_ = "";
- _loc3_ = 0;
- loop0:
- while(true)
- {
- §§push(_loc3_);
- while(§§pop() < param1.length)
- {
- _loc2_ += String.fromCharCode(param1.charCodeAt(_loc3_) & 255,param1.charCodeAt(_loc3_) >>> 8 & 255);
- if(false)
- {
- break;
- }
- §§push(_loc3_);
- if(true)
- {
- continue loop0;
- }
- }
- return _loc2_;
- }
- }
-
- public static function hex_hmac_md5(param1:String, param2:String) : String
- {
- return rstr2hex(rstr_hmac_md5(str2rstr_utf8(param1),str2rstr_utf8(param2)));
- }
-
- public static function binl2rstr(param1:Array) : String
- {
- var _loc2_:String = null;
- var _loc3_:Number = NaN;
- _loc2_ = "";
- _loc3_ = 0;
- loop0:
- while(true)
- {
- §§push(_loc3_);
- while(§§pop() < param1.length * 32)
- {
- _loc2_ += String.fromCharCode(param1[_loc3_ >> 5] >>> _loc3_ % 32 & 255);
- §§push(_loc3_);
- if(true)
- {
- continue loop0;
- }
- }
- return _loc2_;
- }
- }
-
- public static function md5_ff(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
- {
- §§push(§§findproperty(md5_cmn));
- §§push(param2 & param3);
- if(true)
- {
- §§push(~param2);
- if(true)
- {
- §§push(§§pop() & param4);
- }
- §§push(§§pop() | §§pop());
- }
- return §§pop().md5_cmn(§§pop(),param1,param2,param5,param6,param7);
- }
-
- public static function md5_ii(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
- {
- return md5_cmn(param3 ^ (param2 | ~param4),param1,param2,param5,param6,param7);
- }
-
- public static function rstr2binl(param1:String) : Array
- {
- var _loc2_:Array = null;
- var _loc3_:* = NaN;
- _loc2_ = new Array(param1.length >> 2);
- _loc3_ = 0;
- loop0:
- while(true)
- {
- §§push(_loc3_);
- if(true)
- {
- if(§§pop() >= _loc2_.length)
- {
- if(true)
- {
- _loc3_ = 0;
- addr92:
- while(true)
- {
- §§push(_loc3_);
- addr93:
- while(true)
- {
- if(§§pop() >= param1.length * 8)
- {
- §§goto(addr105);
- }
- _loc2_[_loc3_ >> 5] |= (param1.charCodeAt(_loc3_ / 8) & 255) << _loc3_ % 32;
- }
- }
- addr92:
- }
- while(true)
- {
- §§push(_loc3_);
- break loop0;
- }
- }
- else
- {
- _loc2_[_loc3_] = 0;
- if(true)
- {
- §§push(_loc3_);
- if(true)
- {
- §§push(§§pop() + 1);
- if(true)
- {
- §§push(§§pop());
- if(true)
- {
- _loc3_ = §§pop();
- if(true)
- {
- continue;
- }
- §§goto(addr92);
- }
- while(true)
- {
- §§push(§§pop());
- break loop0;
- }
- addr105:
- return _loc2_;
- addr90:
- }
- while(true)
- {
- _loc3_ = §§pop();
- §§goto(addr92);
- }
- }
- §§goto(addr93);
- }
- }
- §§goto(addr105);
- }
- break;
- }
- while(true)
- {
- §§goto(addr90);
- }
- }
-
- public static function md5_vm_test() : Boolean
- {
- return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
- }
-
- public static function b64_md5(param1:String) : String
- {
- return rstr2b64(rstr_md5(str2rstr_utf8(param1)));
- }
-
- public static function any_hmac_md5(param1:String, param2:String, param3:String) : String
- {
- return rstr2any(rstr_hmac_md5(str2rstr_utf8(param1),str2rstr_utf8(param2)),param3);
- }
-
- public static function hex_md5(param1:String) : String
- {
- return rstr2hex(rstr_md5(str2rstr_utf8(param1)));
- }
-
- public static function bit_rol(param1:Number, param2:Number) : Number
- {
- return param1 << param2 | param1 >>> 32 - param2;
- }
-
- public static function encrypt(param1:String) : String
- {
- return hex_md5(param1);
- }
-
- public static function md5_hh(param1:Number, param2:Number, param3:Number, param4:Number, param5:Number, param6:Number, param7:Number) : Number
- {
- §§push(§§findproperty(md5_cmn));
- §§push(param2 ^ param3);
- if(true)
- {
- §§push(param4);
- if(true)
- {
- addr26:
- §§push(§§pop() ^ §§pop());
- §§push(param1);
- }
- return §§pop().md5_cmn(§§pop(),§§pop(),param2,param5,param6,param7);
- }
- §§goto(addr26);
- }
-
- public static function rstr2hex(param1:String) : String
- {
- var _loc2_:String = null;
- var _loc3_:* = null;
- var _loc4_:Number = NaN;
- var _loc5_:Number = NaN;
- _loc2_ = !!hexcase ? "0123456789ABCDEF" : "0123456789abcdef";
- _loc3_ = "";
- _loc5_ = 0;
- while(true)
- {
- if(_loc5_ >= param1.length)
- {
- §§push(_loc3_);
- break;
- }
- §§push(param1);
- if(false)
- {
- break;
- }
- _loc4_ = Number(§§pop().charCodeAt(_loc5_));
- §§push(_loc3_);
- if(true)
- {
- §§push(§§pop() + (_loc2_.charAt(_loc4_ >>> 4 & 15) + _loc2_.charAt(_loc4_ & 15)));
- }
- _loc3_ = §§pop();
- _loc5_++;
- }
- return §§pop();
- }
-
- public static function any_md5(param1:String, param2:String) : String
- {
- return rstr2any(rstr_md5(str2rstr_utf8(param1)),param2);
- }
-
- public static function b64_hmac_md5(param1:String, param2:String) : String
- {
- return rstr2b64(rstr_hmac_md5(str2rstr_utf8(param1),str2rstr_utf8(param2)));
- }
-
- public static function rstr2b64(param1:String) : String
- {
- var _loc2_:String = null;
- var _loc3_:* = null;
- var _loc4_:Number = NaN;
- var _loc5_:Number = NaN;
- var _loc6_:* = NaN;
- var _loc7_:* = NaN;
- _loc2_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
- if(true)
- {
- _loc3_ = "";
- if(true)
- {
- _loc4_ = param1.length;
- }
- _loc5_ = 0;
- }
- loop0:
- while(true)
- {
- §§push(_loc5_);
- while(true)
- {
- if(§§pop() >= _loc4_)
- {
- §§push(_loc3_);
- break;
- }
- §§push(param1);
- if(false)
- {
- break;
- }
- §§push(§§pop().charCodeAt(_loc5_) << 16);
- if(true)
- {
- §§push(_loc5_);
- §§push(1);
- if(true)
- {
- if(§§pop() + §§pop() < _loc4_)
- {
- if(true)
- {
- §§push(param1);
- if(true)
- {
- addr70:
- §§push(§§pop() | §§pop().charCodeAt(_loc5_ + 1) << 8);
- if(true)
- {
- addr95:
- §§push(§§pop() | (_loc5_ + 2 < _loc4_ ? int(param1.charCodeAt(_loc5_ + 2)) : 0));
- if(false)
- {
- continue;
- }
- _loc6_ = §§pop();
- addr100:
- §§push(0);
- if(false)
- {
- continue loop0;
- }
- _loc7_ = §§pop();
- loop2:
- while(true)
- {
- §§push(_loc7_);
- while(true)
- {
- if(§§pop() < 4)
- {
- §§push(_loc5_);
- if(true)
- {
- §§push(§§pop() * 8);
- if(false)
- {
- addr159:
- §§push(§§pop() + 3);
- break;
- }
- §§push(§§pop() + _loc7_ * 6);
- if(false)
- {
- continue;
- }
- if(§§pop() > param1.length * 8)
- {
- §§push(_loc3_);
- if(true)
- {
- §§push(§§pop() + b64pad);
- if(true)
- {
- _loc3_ = §§pop();
- continue loop2;
- }
- addr135:
- §§push(§§pop() + _loc2_.charAt(_loc6_ >>> 6 * (3 - _loc7_) & 63));
- }
- _loc3_ = §§pop();
- continue loop2;
- }
- §§push(_loc3_);
- §§goto(addr135);
- }
- break;
- }
- §§push(_loc5_);
- §§goto(addr159);
- }
- continue loop0;
- }
- }
- }
- §§goto(addr79);
- }
- §§goto(addr95);
- }
- else
- {
- §§push(0);
- }
- §§goto(addr70);
- }
- §§goto(addr95);
- }
- §§goto(addr100);
- }
- return §§pop();
- }
- }
-
- public static function safe_add(param1:Number, param2:Number) : Number
- {
- var _loc3_:Number = NaN;
- var _loc4_:* = NaN;
- if(true)
- {
- §§push(param1 & 65535);
- §§push(param2);
- if(true)
- {
- _loc3_ = §§pop() + (§§pop() & 65535);
- addr33:
- §§push((param1 >> 16) + (param2 >> 16));
- §§push(_loc3_);
- if(true)
- {
- §§push(§§pop() + (§§pop() >> 16));
- §§push(§§pop() + (§§pop() >> 16));
- }
- _loc4_ = §§pop();
- §§push(§§pop() << 16);
- §§push(_loc3_);
- }
- return §§pop() | §§pop() & 65535;
- }
- §§goto(addr33);
- }
-
- public static function str2rstr_utf8(param1:String) : String
- {
- var _loc2_:* = null;
- var _loc3_:* = NaN;
- var _loc4_:Number = NaN;
- var _loc5_:Number = NaN;
- _loc2_ = "";
- _loc3_ = -1;
- loop0:
- while(true)
- {
- §§push(_loc3_ + 1);
- §§push(_loc3_ + 1);
- loop1:
- while(true)
- {
- _loc3_ = §§pop();
- §§push(param1);
- while(§§pop() < §§pop().length)
- {
- §§push(param1);
- if(false)
- {
- §§goto(addr249);
- }
- _loc4_ = Number(§§pop().charCodeAt(_loc3_));
- if(false)
- {
- break;
- }
- §§push(_loc3_ + 1);
- §§push(param1);
- if(false)
- {
- continue;
- }
- §§push(§§pop() < §§pop().length);
- if(true)
- {
- if(§§pop())
- {
- if(false)
- {
- continue loop0;
- }
- §§push(param1);
- if(true)
- {
- addr58:
- _loc5_ = Number(§§pop().charCodeAt(_loc3_ + 1));
- if(true)
- {
- §§push(55296);
- §§push(_loc4_);
- if(true)
- {
- §§push(§§pop() <= §§pop());
- if(true)
- {
- if(§§pop())
- {
- if(true)
- {
- §§pop();
- if(true)
- {
- §§push(_loc4_ <= 56319);
- if(true)
- {
- addr81:
- if(§§pop())
- {
- }
- addr89:
- if(§§pop())
- {
- addr91:
- §§pop();
- if(true)
- {
- addr97:
- if(_loc5_ <= 57343)
- {
- if(true)
- {
- addr102:
- §§push(65536 + ((_loc4_ & 1023) << 10));
- §§push(_loc5_);
- if(true)
- {
- _loc4_ = §§pop() + (§§pop() & 1023);
- if(true)
- {
- _loc3_++;
- if(true)
- {
- break loop1;
- }
- addr133:
- §§push(_loc2_);
- if(false)
- {
- addr232:
- _loc2_ = §§pop() + String.fromCharCode(240 | _loc4_ >>> 18 & 7,128 | _loc4_ >>> 12 & 63,128 | _loc4_ >>> 6 & 63,128 | _loc4_ & 63);
- addr202:
- continue loop0;
- }
- §§push(§§pop() + String.fromCharCode(_loc4_));
- if(false)
- {
- addr196:
- _loc2_ = §§pop();
- continue loop0;
- }
- _loc2_ = §§pop();
- }
- continue loop0;
- }
- continue loop1;
- }
- addr148:
- §§push(_loc2_);
- if(true)
- {
- _loc2_ = §§pop() + String.fromCharCode(192 | _loc4_ >>> 6 & 31,128 | _loc4_ & 63);
- addr168:
- continue loop0;
- }
- addr173:
- addr173:
- §§goto(addr196);
- §§push(§§pop() + String.fromCharCode(224 | _loc4_ >>> 12 & 15,128 | _loc4_ >>> 6 & 63,128 | _loc4_ & 63));
- }
- break loop1;
- }
- §§goto(addr168);
- }
- §§goto(addr97);
- }
- §§pop();
- addr172:
- if(true)
- {
- §§goto(addr89);
- §§push(56320 <= _loc5_);
- }
- §§goto(addr173);
- §§push(_loc2_);
- }
- §§goto(addr196);
- }
- §§goto(addr89);
- }
- §§goto(addr81);
- }
- §§goto(addr91);
- }
- §§goto(addr102);
- }
- §§goto(addr202);
- §§push(_loc2_);
- }
- §§goto(addr232);
- }
- else
- {
- §§push(0);
- }
- §§goto(addr58);
- }
- §§goto(addr97);
- }
- addr249:
- return §§pop();
- }
- if(_loc4_ <= 127)
- {
- §§goto(addr133);
- }
- else
- {
- if(_loc4_ <= 2047)
- {
- §§goto(addr148);
- }
- else if(_loc4_ <= 65535)
- {
- §§goto(addr172);
- }
- else
- {
- if(_loc4_ > 2097151)
- {
- continue;
- }
- §§goto(addr58);
- }
- §§goto(addr173);
- }
- }
- }
-
- public static function rstr_hmac_md5(param1:String, param2:String) : String
- {
- var _loc3_:Array = null;
- var _loc4_:Array = null;
- var _loc5_:Array = null;
- var _loc6_:* = NaN;
- var _loc7_:Array = null;
- _loc3_ = rstr2binl(param1);
- if(_loc3_.length > 16)
- {
- _loc3_ = binl_md5(_loc3_,param1.length * 8);
- }
- _loc4_ = new Array(16);
- _loc5_ = new Array(16);
- _loc6_ = 0;
- while(true)
- {
- §§push(_loc6_);
- while(true)
- {
- if(§§pop() < 16)
- {
- _loc4_[_loc6_] = _loc3_[_loc6_] ^ 909522486;
- if(true)
- {
- _loc5_[_loc6_] = _loc3_[_loc6_] ^ 1549556828;
- if(false)
- {
- break;
- }
- §§push(_loc6_);
- if(true)
- {
- §§push(§§pop() + 1);
- if(true)
- {
- §§push(§§pop());
- }
- _loc6_ = §§pop();
- break;
- }
- continue;
- }
- }
- _loc7_ = binl_md5(_loc4_.concat(rstr2binl(param2)),512 + param2.length * 8);
- return binl2rstr(binl_md5(_loc5_.concat(_loc7_),512 + 128));
- }
- }
- }
-
- public static function str2rstr_utf16be(param1:String) : String
- {
- var _loc2_:String = null;
- var _loc3_:Number = NaN;
- _loc2_ = "";
- _loc3_ = 0;
- loop0:
- while(true)
- {
- §§push(_loc3_);
- while(true)
- {
- if(§§pop() >= param1.length)
- {
- §§push(_loc2_);
- break;
- }
- §§push(_loc2_);
- if(false)
- {
- break;
- }
- _loc2_ = §§pop() + String.fromCharCode(param1.charCodeAt(_loc3_) >>> 8 & 255,param1.charCodeAt(_loc3_) & 255);
- §§push(_loc3_);
- if(true)
- {
- continue loop0;
- }
- }
- return §§pop();
- }
- }
-
- public static function rstr2any(param1:String, param2:String) : String
- {
- var _loc3_:Number = NaN;
- var _loc4_:Array = null;
- var _loc5_:Number = NaN;
- var _loc6_:Number = NaN;
- var _loc7_:Number = NaN;
- var _loc8_:Array = null;
- var _loc9_:Array = null;
- var _loc10_:String = null;
- _loc3_ = param2.length;
- _loc4_ = [];
- _loc9_ = new Array(param1.length / 2);
- if(true)
- {
- _loc5_ = 0;
- }
- while(_loc5_ < _loc9_.length)
- {
- _loc9_[_loc5_] = param1.charCodeAt(_loc5_ * 2) << 8 | param1.charCodeAt(_loc5_ * 2 + 1);
- _loc5_++;
- }
- while(_loc9_.length > 0)
- {
- _loc8_ = [];
- _loc7_ = 0;
- _loc5_ = 0;
- while(_loc5_ < _loc9_.length)
- {
- §§push(_loc7_);
- §§push(16);
- if(true)
- {
- _loc7_ = (§§pop() << §§pop()) + _loc9_[_loc5_];
- _loc6_ = Math.floor(_loc7_ / _loc3_);
- §§push(_loc7_);
- §§push(_loc6_);
- if(true)
- {
- §§push(§§pop() * _loc3_);
- }
- _loc7_ = §§pop() - §§pop();
- §§push(_loc8_.length > 0);
- if(false)
- {
- continue;
- }
- §§push(§§pop() || 0);
- }
- §§push(§§pop() > §§pop());
- if(§§pop())
- {
- _loc8_[_loc8_.length] = _loc6_;
- }
- _loc5_++;
- }
- _loc4_[_loc4_.length] = _loc7_;
- _loc9_ = _loc8_;
- }
- _loc10_ = "";
- _loc5_ = _loc4_.length - 1;
- while(true)
- {
- if(_loc5_ < 0)
- {
- §§push(_loc10_);
- break;
- }
- §§push(_loc10_);
- if(false)
- {
- break;
- }
- _loc10_ = §§pop() + param2.charAt(_loc4_[_loc5_]);
- _loc5_--;
- }
- return §§pop();
- }
-
- public static function rstr_md5(param1:String) : String
- {
- return binl2rstr(binl_md5(rstr2binl(param1),param1.length * 8));
- }
- }
- }
-